In general, it is difficult to have an accurate measurement of absolute time in a distributed computing environment. Even with time synchronization mechanisms such as Network Time Protocol (NTP, a networking protocol for clock synchronization between networked computer systems), guaranteeing global consistency across distributed computing environments with uncertain physical clocks remains a problem. While synchronizing the clock of each computer in a network to the same reference clock, such as an atomic clock, will reduce the error in times reported by the clocks, it will not eliminate the error. For example, the longer a clock runs without synchronization, the more the clock's time drifts away from the reference clock time, and the larger the error becomes between the two clocks. Even with synchronization, the error is too large to ignore in many cases.
Further, when synchronizing the time, an uncertain network delay exists from the system sending the reference clock time and the system receiving the reference time. A system may send a request for a reference time to a reference system, and may receive a response in 50 milliseconds (ms). The reference time is the time at some point in the 50 ms time window, but it is difficult to know at which point exactly. Some systems will assume that the reference time is the time at the halfway point of the round trip message (i.e. at 25 ms in the example), and will add 25 ms to the reference time to obtain the “current” time. However, this is an approximation with some unknown, albeit bounded (e.g. 50 ms), error. Nonetheless, even with a system such as NTP, any clock of any computer in a distributed computing environment may have some unknown, but generally bounded, error.